Verification of MPI-Based Software for Scientific Computation

نویسندگان

  • Stephen F. Siegel
  • George S. Avrunin
چکیده

We explore issues related to the application of finite-state verification techniques to scientific computation software employing the widely-used Message-Passing Interface (MPI). Many of the features of MPI that are important for programmers present significant difficulties for model checking. In this paper, we examine a small parallel program that computes the evolution in time of a discretized function u defined on a 2-dimensional domain and governed by the diffusion equation. Although this example is simple, it makes use of many of the problematic features of MPI. We discuss the modeling of these features and use Spin and INCA to verify several correctness properties for various configurations of this program. Finally, we describe some general theorems that can be used to justify simplifications in finite-state models of MPI programs and that guarantee certain properties must hold for any program using only a particular subset of MPI.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Deductive Verification of Parallel Programs Using Why3

The Message Passing Interface specification (MPI) defines a portable message-passing API used to program parallel computers. MPI programs manifest a number of challenges on what concerns correctness: sent and expected values in communications may not match, resulting in incorrect computations possibly leading to crashes; and programs may deadlock resulting in wasted resources. Existing tools ar...

متن کامل

Analyzing BlobFlow: A Case Study Using Model Checking to Verify Parallel Scientific Software

Model checking techniques are powerful tools for the analysis and verification of concurrent systems. This paper reports on a case study applying model checking techniques to a mature, MPI-based scientific program consisting of approximately 10K lines of code. The program, BlobFlow, implements a high order vortex method for solving the twodimensional Navier-Stokes equations. Despite the complex...

متن کامل

Gauss: A Framework for Verifying Scientific Computing Software

High performance scientific computing software is of critical international importance as it supports scientific explorations and engineering. Software development in this area is highly challenging owing to the use of parallel/distributed programming methods and complex communication and synchronization libraries. There is very little use of formal methods to debug software in this area, given...

متن کامل

A Case Study in the Use of Model Checking to Verify Parallel Scientific Software

We report on a case study using the model checking tool Mpi-Spin to verify a nontrivial, deployed, MPI-based scientific program. The program, BlobFlow/ECCSVM, is an open source code implementing a high order vortex method for solving the Navier-Stokes equations in two dimensions. Over the past several years, it has been used for a variety of applications, including jets, coherent vortex structu...

متن کامل

Linux Cluster Communication Software Performance Evaluation for Scientific Problems

A Linux cluster with Gigabit Ethernet interconnect is a local and accessible resource for solving scientific problems, including finite-element simulations. As generalpurpose protocol stacks are not designed for parallel computing, the delivered throughput and latency may be significantly below that suggested by the hardware specification of the interconnect. The paper evaluates communication s...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004